import sqlite3
import os
import datetime

# 检查目录中的所有SQLite数据库文件
def check_sqlite_databases():
    print(f"当前目录: {os.getcwd()}")
    print("\n目录中的SQLite数据库文件:")
    
    # 查找所有.db文件
    db_files = [f for f in os.listdir('.') if f.endswith('.db')]
    for db_file in db_files:
        # 获取文件信息
        file_stats = os.stat(db_file)
        mod_time = datetime.datetime.fromtimestamp(file_stats.st_mtime)
        file_size = file_stats.st_size / 1024  # KB
        
        print(f"- {db_file}")
        print(f"  最后修改时间: {mod_time}")
        print(f"  文件大小: {file_size:.2f} KB")
        
        # 检查是否包含trade_records表
        try:
            conn = sqlite3.connect(db_file)
            cursor = conn.cursor()
            
            # 检查表是否存在
            cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='trade_records';")
            table_exists = cursor.fetchone() is not None
            
            if table_exists:
                # 获取表中的记录数量
                cursor.execute("SELECT COUNT(*) FROM trade_records")
                count = cursor.fetchone()[0]
                
                # 获取最新记录的时间
                cursor.execute("SELECT MAX(timestamp) FROM trade_records")
                latest_time = cursor.fetchone()[0]
                
                print(f"  trade_records表: 存在")
                print(f"  记录数量: {count}")
                print(f"  最新记录时间: {latest_time}")
            else:
                print(f"  trade_records表: 不存在")
                
        except Exception as e:
            print(f"  检查时出错: {str(e)}")
        finally:
            if conn:
                conn.close()

# 检查主程序中使用的数据库连接配置
def check_main_program_db_config():
    try:
        # 查找主程序文件
        main_files = [f for f in os.listdir('.') if f.startswith('auto_stp10') and f.endswith('.py')]
        
        print("\n主程序文件中的数据库连接配置:")
        for main_file in main_files:
            print(f"\n文件: {main_file}")
            
            # 读取文件内容，查找数据库相关配置
            with open(main_file, 'r', encoding='utf-8', errors='ignore') as f:
                content = f.read()
                
                # 查找数据库文件名
                if 'trade_monitor.db' in content:
                    print("  - 使用数据库: trade_monitor.db")
                
                # 查找insert_trade_record函数
                if 'def insert_trade_record' in content:
                    print("  - 包含insert_trade_record函数")
                    
                    # 查找函数中的关键代码行
                    if 'console.print("交易记录已成功插入数据库")' in content:
                        print("    ✓ 包含成功插入的控制台输出")
                    if 'logging.error' in content:
                        print("    ✓ 包含错误日志记录")
                        
    except Exception as e:
        print(f"检查主程序配置时出错: {str(e)}")

if __name__ == "__main__":
    print("=== 交易记录数据库诊断工具 ===")
    check_sqlite_databases()
    check_main_program_db_config()